/**
 * Class Exception()
 * 
 * @constructor
 * @author Hermann D. Schimpf <hschimpf@gschimpf.com>
 * @license http://opensource.org/licenses/gpl-2.0.php
 * @date 2010-08-17
 * @version 0.1.0
 */
function Exception(msg) {
	/* seteamos el nombre */
	this.setName('Exception');
	/* almacenamos el mensaje */
	this.setMessage(msg);
};
/* heredamos las propiedades de las excepciones */
Exception.prototype = new Error;
/**
 * Retorna la excepcion en un String
 * 
 * @return String Definicion de la excepcion
 */
Exception.prototype.toString = function() {
	/* retornamos la excepion */
	return this.getName() + ' in ' + this.getFile() + ':' + this.getLine() + '\n' + this.getMessage();
};
/**
 * Retorna el nombre del fichero desde el cual se produjo la exception
 * 
 * @return String Nombre del fichero
 */
Exception.prototype.getFile = function() {
	/* retornamos el nombre del archivo */
	return this.fileName.substr(this.fileName.lastIndexOf('/') + 1, this.fileName.length);
};
/**
 * Retorna la linea en donde se produjo la excepcion
 * 
 * @return Integer Numero de linea
 */
Exception.prototype.getLine = function() {
	/* retornamos el numero de linea */
	return this.lineNumber;
};
/**
 * Almacena el nombre para la excepcion
 * 
 * @param String Nombre
 */
Exception.prototype.setName = function(name) {
	/* almacenamos el nombre */
	this.name = name;
};
/**
 * Retorna el nombre de la exception
 * 
 * @return String Nombre de la Excepcion
 */
Exception.prototype.getName = function() {
	/* retornamos el nombre */
	return this.name;
};
/**
 * Almacena el mensaje de la excepcion
 * 
 * @param String Mensaje para la excepcion
 */
Exception.prototype.setMessage = function(msg) {
	/* almacenamos el mensaje */
	this.message = msg === undefined ? this.getName() : msg;
};
/**
 * Retorna el mensaje de la excepcion
 * 
 * @return String Mensaje de la excepcion
 */
Exception.prototype.getMessage = function() {
	/* retornamos el mensaje */
	return this.message;
};